package dao

import (
	models "yuanaiproblem/dao/model" // 导入用户模型
	"yuanaiproblem/migrations/db"    // 导入数据库连接
)

// GetUserByUsername 通过用户名查询用户
// 入参：用户名
// 返回：用户信息或错误
func GetUserByUsername(username string) (*models.User, error) {
	var user models.User // 存储查询到的用户
	// 条件查询：用户名匹配且未删除
	result := db.DB.Where("username = ? AND deleted_at IS NULL", username).First(&user)
	if result.Error != nil {
		return nil, result.Error // 查询失败返回错误
	}
	return &user, nil // 返回用户指针
}

// CreateUser 创建新用户
// 入参：用户指针
// 返回：操作结果
func CreateUser(user *models.User) error {
	// 插入用户记录
	return db.DB.Create(user).Error
}

// IsUsernameExists 检查用户名是否存在
// 入参：用户名
// 返回：存在状态和错误
func IsUsernameExists(username string) (bool, error) {
	var count int64 // 存储匹配数量
	// 统计同名用户数量
	if err := db.DB.Model(&models.User{}).Where("username = ?", username).Count(&count).Error; err != nil {
		return false, err // 统计失败返回错误
	}
	return count > 0, nil // 返回是否存在
}
